home *** CD-ROM | disk | FTP | other *** search
- #include "sprite.h"
-
- #include "SpriteLayer.proto.h"
-
- typedef struct spriteLayer {
- struct spriteLayer *next; // the layer in back of this one
- struct spriteLayer *prev; // the layer in front of this one
- spritePtr *sprites; // the sprites in this layer
- GWorldPtr tween; // the work GWorld for this layer
- GWorldPtr backdrop; // the background for this layer
- WindowPtr window; // the window this layer ends up in
- long layerFlags;
- long layerID;
- long layerRefcon;
- } spriteLayer, *spriteLayerPtr;
-
-
- static spriteLayerPtr MasterSpriteHead;
- static spriteLayerPtr MasterSpriteTail;
-
- OSErr CreateSpriteLayer(spriteLayerPtr *retSprite,
- GWorldPtr tween,
- GWorldPtr backdrop,
- WindowPtr spriteWin)
- {
-
- OSErr err;
- spriteLayerPtr sl;
-
- sl = (spriteLayerPtr)NewPtrClear(sizeof(spriteLayer));
- if(!sl) {
- err = MemError();
- ErrMsgCode("\pCreateSpriteLayer NewPtrClear failed.",err);
- }
-
- if(err == noErr) {
- sl->tween = tween;
- sl->backdrop = backdrop;
- sl->window = spriteWin;
- }
-
- if(MasterSpriteTail) {
- sl->prev = MasterSpriteTail;
- MasterSpriteTail->next = sl;
- MasterSpriteTail = sl;
- } else {
- MasterSpriteHead = MasterSpriteTail = sl;
- }
-
- *retSprite = sl;
-
- return err;
-
- }